//===============================================================================
// Microsoft patterns & practices
// Smart Client Software Factory
//===============================================================================
// Copyright (C) Microsoft Corporation.  All rights reserved.
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY
// OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT
// LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
// FITNESS FOR A PARTICULAR PURPOSE.
//===============================================================================
// The example companies, organizations, products, domain names,
// e-mail addresses, logos, people, places, and events depicted
// herein are fictitious.  No association with any real company,
// organization, product, domain name, email address, logo, person,
// places, or events is intended or should be inferred.
//===============================================================================

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by a tool.
//     Runtime Version:2.0.50727.42
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

// 
// This source code was auto-generated by wsdl, Version=2.0.50727.42.
// 
namespace GlobalBank.BranchSystems.ServiceProxies
{
	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Web.Services.WebServiceBindingAttribute(Name="BasicHttpBinding_ICustomerFinder",
			Namespace="http://tempuri.org/")]
	public partial class CustomerFinderService : System.Web.Services.Protocols.SoapHttpClientProtocol
	{
		private System.Threading.SendOrPostCallback AddCustomerOperationCompleted;

		private System.Threading.SendOrPostCallback DeleteCustomerOperationCompleted;

		private System.Threading.SendOrPostCallback FindCustomerOperationCompleted;

		/// <remarks/>
		public CustomerFinderService()
		{
			this.Url = "http://localhost:54078/GlobalBankServices/CustomerFinder.asmx";
		}

		/// <remarks/>
		public event AddCustomerCompletedEventHandler AddCustomerCompleted;

		/// <remarks/>
		public event DeleteCustomerCompletedEventHandler DeleteCustomerCompleted;

		/// <remarks/>
		public event FindCustomerCompletedEventHandler FindCustomerCompleted;

		/// <remarks/>
		[
			System.Web.Services.Protocols.SoapDocumentMethodAttribute("AddCustomer",
				RequestNamespace="http://GlobalBranchServicesServiceContracts/2006/04/ICustomerFinder",
				ResponseNamespace="http://GlobalBranchServicesServiceContracts/2006/04/ICustomerFinder",
				Use=System.Web.Services.Description.SoapBindingUse.Literal,
				ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		[return : System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string AddCustomer([System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] Customer customer)
		{
			object[] results = this.Invoke("AddCustomer", new object[]
			                                              	{
			                                              		customer
			                                              	});
			return ((string) (results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginAddCustomer(Customer customer, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("AddCustomer", new object[]
			                                       	{
			                                       		customer
			                                       	}, callback, asyncState);
		}

		/// <remarks/>
		public string EndAddCustomer(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((string) (results[0]));
		}

		/// <remarks/>
		public void AddCustomerAsync(Customer customer)
		{
			this.AddCustomerAsync(customer, null);
		}

		/// <remarks/>
		public void AddCustomerAsync(Customer customer, object userState)
		{
			if ((this.AddCustomerOperationCompleted == null))
			{
				this.AddCustomerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddCustomerOperationCompleted);
			}
			this.InvokeAsync("AddCustomer", new object[]
			                                	{
			                                		customer
			                                	}, this.AddCustomerOperationCompleted, userState);
		}

		private void OnAddCustomerOperationCompleted(object arg)
		{
			if ((this.AddCustomerCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs =
					((System.Web.Services.Protocols.InvokeCompletedEventArgs) (arg));
				this.AddCustomerCompleted(this,
				                          new AddCustomerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error,
				                                                            invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[
			System.Web.Services.Protocols.SoapDocumentMethodAttribute("DeleteCustomer",
				RequestNamespace="http://GlobalBranchServicesServiceContracts/2006/04/ICustomerFinder",
				ResponseNamespace="http://GlobalBranchServicesServiceContracts/2006/04/ICustomerFinder",
				Use=System.Web.Services.Description.SoapBindingUse.Literal,
				ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		[return : System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public DeleteCustomerResponse DeleteCustomer(
			[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] DeleteCustomerRequest customerToDelete)
		{
			object[] results = this.Invoke("DeleteCustomer", new object[]
			                                                 	{
			                                                 		customerToDelete
			                                                 	});
			return ((DeleteCustomerResponse) (results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginDeleteCustomer(DeleteCustomerRequest customerToDelete, System.AsyncCallback callback,
		                                               object asyncState)
		{
			return this.BeginInvoke("DeleteCustomer", new object[]
			                                          	{
			                                          		customerToDelete
			                                          	}, callback, asyncState);
		}

		/// <remarks/>
		public DeleteCustomerResponse EndDeleteCustomer(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((DeleteCustomerResponse) (results[0]));
		}

		/// <remarks/>
		public void DeleteCustomerAsync(DeleteCustomerRequest customerToDelete)
		{
			this.DeleteCustomerAsync(customerToDelete, null);
		}

		/// <remarks/>
		public void DeleteCustomerAsync(DeleteCustomerRequest customerToDelete, object userState)
		{
			if ((this.DeleteCustomerOperationCompleted == null))
			{
				this.DeleteCustomerOperationCompleted =
					new System.Threading.SendOrPostCallback(this.OnDeleteCustomerOperationCompleted);
			}
			this.InvokeAsync("DeleteCustomer", new object[]
			                                   	{
			                                   		customerToDelete
			                                   	}, this.DeleteCustomerOperationCompleted, userState);
		}

		private void OnDeleteCustomerOperationCompleted(object arg)
		{
			if ((this.DeleteCustomerCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs =
					((System.Web.Services.Protocols.InvokeCompletedEventArgs) (arg));
				this.DeleteCustomerCompleted(this,
				                             new DeleteCustomerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error,
				                                                                  invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[
			System.Web.Services.Protocols.SoapDocumentMethodAttribute("FindCustomer",
				RequestNamespace="http://GlobalBranchServicesServiceContracts/2006/04/ICustomerFinder",
				ResponseNamespace="http://GlobalBranchServicesServiceContracts/2006/04/ICustomerFinder",
				Use=System.Web.Services.Description.SoapBindingUse.Literal,
				ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		[return : System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public FindCustomerResponse FindCustomer(
			[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] CustomerSearchCriteria searchCriteria)
		{
			object[] results = this.Invoke("FindCustomer", new object[]
			                                               	{
			                                               		searchCriteria
			                                               	});
			return ((FindCustomerResponse) (results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginFindCustomer(CustomerSearchCriteria searchCriteria, System.AsyncCallback callback,
		                                             object asyncState)
		{
			return this.BeginInvoke("FindCustomer", new object[]
			                                        	{
			                                        		searchCriteria
			                                        	}, callback, asyncState);
		}

		/// <remarks/>
		public FindCustomerResponse EndFindCustomer(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((FindCustomerResponse) (results[0]));
		}

		/// <remarks/>
		public void FindCustomerAsync(CustomerSearchCriteria searchCriteria)
		{
			this.FindCustomerAsync(searchCriteria, null);
		}

		/// <remarks/>
		public void FindCustomerAsync(CustomerSearchCriteria searchCriteria, object userState)
		{
			if ((this.FindCustomerOperationCompleted == null))
			{
				this.FindCustomerOperationCompleted = new System.Threading.SendOrPostCallback(this.OnFindCustomerOperationCompleted);
			}
			this.InvokeAsync("FindCustomer", new object[]
			                                 	{
			                                 		searchCriteria
			                                 	}, this.FindCustomerOperationCompleted, userState);
		}

		private void OnFindCustomerOperationCompleted(object arg)
		{
			if ((this.FindCustomerCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs =
					((System.Web.Services.Protocols.InvokeCompletedEventArgs) (arg));
				this.FindCustomerCompleted(this,
				                           new FindCustomerCompletedEventArgs(invokeArgs.Results, invokeArgs.Error,
				                                                              invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		public new void CancelAsync(object userState)
		{
			base.CancelAsync(userState);
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://GlobalBranchServicesDataContracts/2006/04/Customer")]
	public partial class Customer
	{
		private string customerIdField;

		private string firstNameField;

		private string lastNameField;

		private string middleInitialField;

		private string sSNumberField;

		private string motherMaidenNameField;

		private Address[] addressesField;

		private PhoneNumber[] phoneNumbersField;

		private EmailAddress[] emailAddressesField;

		private Comment[] commentsField;

		private string customerLevelField;

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string CustomerId
		{
			get { return this.customerIdField; }
			set { this.customerIdField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string FirstName
		{
			get { return this.firstNameField; }
			set { this.firstNameField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string LastName
		{
			get { return this.lastNameField; }
			set { this.lastNameField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string MiddleInitial
		{
			get { return this.middleInitialField; }
			set { this.middleInitialField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string SSNumber
		{
			get { return this.sSNumberField; }
			set { this.sSNumberField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string MotherMaidenName
		{
			get { return this.motherMaidenNameField; }
			set { this.motherMaidenNameField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
		[System.Xml.Serialization.XmlArrayItemAttribute(Namespace="http://GlobalBranchServicesDataContracts/2006/04/Address")]
		public Address[] Addresses
		{
			get { return this.addressesField; }
			set { this.addressesField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
		[
			System.Xml.Serialization.XmlArrayItemAttribute(
				Namespace="http://GlobalBranchServicesDataContracts/2006/04/PhoneNumber")]
		public PhoneNumber[] PhoneNumbers
		{
			get { return this.phoneNumbersField; }
			set { this.phoneNumbersField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
		[
			System.Xml.Serialization.XmlArrayItemAttribute(
				Namespace="http://GlobalBranchServicesDataContracts/2006/04/EmailAddress")]
		public EmailAddress[] EmailAddresses
		{
			get { return this.emailAddressesField; }
			set { this.emailAddressesField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
		[System.Xml.Serialization.XmlArrayItemAttribute(Namespace="http://GlobalBranchServicesDataContracts/2006/04/Comment")]
		public Comment[] Comments
		{
			get { return this.commentsField; }
			set { this.commentsField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string CustomerLevel
		{
			get { return this.customerLevelField; }
			set { this.customerLevelField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://GlobalBranchServicesDataContracts/2006/04/Address")]
	public partial class Address
	{
		private string addressTypeField;

		private string address1Field;

		private string address2Field;

		private string cityField;

		private string stateProvinceField;

		private string countryCodeField;

		private string postalZipCodeField;

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string AddressType
		{
			get { return this.addressTypeField; }
			set { this.addressTypeField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string Address1
		{
			get { return this.address1Field; }
			set { this.address1Field = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string Address2
		{
			get { return this.address2Field; }
			set { this.address2Field = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string City
		{
			get { return this.cityField; }
			set { this.cityField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string StateProvince
		{
			get { return this.stateProvinceField; }
			set { this.stateProvinceField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string CountryCode
		{
			get { return this.countryCodeField; }
			set { this.countryCodeField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string PostalZipCode
		{
			get { return this.postalZipCodeField; }
			set { this.postalZipCodeField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Xml.Serialization.XmlTypeAttribute(
			Namespace="http://GlobalBranchServicesDataContracts/2006/04/FindCustomerResponse")]
	public partial class FindCustomerResponse
	{
		private Customer[] customersField;

		private bool tooManyResultsField;

		/// <remarks/>
		[System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
		[System.Xml.Serialization.XmlArrayItemAttribute(Namespace="http://GlobalBranchServicesDataContracts/2006/04/Customer")
			]
		public Customer[] Customers
		{
			get { return this.customersField; }
			set { this.customersField = value; }
		}

		/// <remarks/>
		public bool TooManyResults
		{
			get { return this.tooManyResultsField; }
			set { this.tooManyResultsField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Xml.Serialization.XmlTypeAttribute(
			Namespace="http://GlobalBranchServicesDataContracts/2006/04/EmailAddressSearchCriteria")]
	public partial class EmailAddressSearchCriteria
	{
		private string addressField;

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string Address
		{
			get { return this.addressField; }
			set { this.addressField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Xml.Serialization.XmlTypeAttribute(
			Namespace="http://GlobalBranchServicesDataContracts/2006/04/PhoneNumberSearchCriteria")]
	public partial class PhoneNumberSearchCriteria
	{
		private string numberField;

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string Number
		{
			get { return this.numberField; }
			set { this.numberField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Xml.Serialization.XmlTypeAttribute(
			Namespace="http://GlobalBranchServicesDataContracts/2006/04/AddressSearchCriteria")]
	public partial class AddressSearchCriteria
	{
		private string address1Field;

		private string address2Field;

		private string cityField;

		private string stateProvinceField;

		private string countryCodeField;

		private string postalZipCodeField;

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string Address1
		{
			get { return this.address1Field; }
			set { this.address1Field = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string Address2
		{
			get { return this.address2Field; }
			set { this.address2Field = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string City
		{
			get { return this.cityField; }
			set { this.cityField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string StateProvince
		{
			get { return this.stateProvinceField; }
			set { this.stateProvinceField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string CountryCode
		{
			get { return this.countryCodeField; }
			set { this.countryCodeField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string PostalZipCode
		{
			get { return this.postalZipCodeField; }
			set { this.postalZipCodeField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Xml.Serialization.XmlTypeAttribute(
			Namespace="http://GlobalBranchServicesDataContracts/2006/04/CustomerSearchCriteria")]
	public partial class CustomerSearchCriteria
	{
		private string firstNameField;

		private string lastNameField;

		private string middleInitialField;

		private string sSNumberField;

		private AddressSearchCriteria[] addressesField;

		private PhoneNumberSearchCriteria[] phoneNumbersField;

		private EmailAddressSearchCriteria[] emailAddressesField;

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string FirstName
		{
			get { return this.firstNameField; }
			set { this.firstNameField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string LastName
		{
			get { return this.lastNameField; }
			set { this.lastNameField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string MiddleInitial
		{
			get { return this.middleInitialField; }
			set { this.middleInitialField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string SSNumber
		{
			get { return this.sSNumberField; }
			set { this.sSNumberField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
		[
			System.Xml.Serialization.XmlArrayItemAttribute(
				Namespace="http://GlobalBranchServicesDataContracts/2006/04/AddressSearchCriteria")]
		public AddressSearchCriteria[] Addresses
		{
			get { return this.addressesField; }
			set { this.addressesField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
		[
			System.Xml.Serialization.XmlArrayItemAttribute(
				Namespace="http://GlobalBranchServicesDataContracts/2006/04/PhoneNumberSearchCriteria")]
		public PhoneNumberSearchCriteria[] PhoneNumbers
		{
			get { return this.phoneNumbersField; }
			set { this.phoneNumbersField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
		[
			System.Xml.Serialization.XmlArrayItemAttribute(
				Namespace="http://GlobalBranchServicesDataContracts/2006/04/EmailAddressSearchCriteria")]
		public EmailAddressSearchCriteria[] EmailAddresses
		{
			get { return this.emailAddressesField; }
			set { this.emailAddressesField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Xml.Serialization.XmlTypeAttribute(
			Namespace="http://GlobalBranchServicesDataContracts/2006/05/DeleteCustomerResponse")]
	public partial class DeleteCustomerResponse
	{
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Xml.Serialization.XmlTypeAttribute(
			Namespace="http://GlobalBranchServicesDataContracts/2006/05/DeleteCustomerRequest")]
	public partial class DeleteCustomerRequest
	{
		private string customerIDField;

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string CustomerID
		{
			get { return this.customerIDField; }
			set { this.customerIDField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://GlobalBranchServicesDataContracts/2006/04/Comment")]
	public partial class Comment
	{
		private System.DateTime dateTimeField;

		private string comment1Field;

		private string authorNameField;

		/// <remarks/>
		public System.DateTime DateTime
		{
			get { return this.dateTimeField; }
			set { this.dateTimeField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("Comment", IsNullable=true)]
		public string Comment1
		{
			get { return this.comment1Field; }
			set { this.comment1Field = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string AuthorName
		{
			get { return this.authorNameField; }
			set { this.authorNameField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://GlobalBranchServicesDataContracts/2006/04/EmailAddress")]
	public partial class EmailAddress
	{
		private string emailAddress1Field;

		private string typeField;

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("EmailAddress", IsNullable=true)]
		public string EmailAddress1
		{
			get { return this.emailAddress1Field; }
			set { this.emailAddress1Field = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string Type
		{
			get { return this.typeField; }
			set { this.typeField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://GlobalBranchServicesDataContracts/2006/04/PhoneNumber")]
	public partial class PhoneNumber
	{
		private string phoneNumber1Field;

		private string phoneTypeField;

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("PhoneNumber", IsNullable=true)]
		public string PhoneNumber1
		{
			get { return this.phoneNumber1Field; }
			set { this.phoneNumber1Field = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string PhoneType
		{
			get { return this.phoneTypeField; }
			set { this.phoneTypeField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void AddCustomerCompletedEventHandler(object sender, AddCustomerCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class AddCustomerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{
		private object[] results;

		internal AddCustomerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
			:
				base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public string Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((string) (this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void DeleteCustomerCompletedEventHandler(object sender, DeleteCustomerCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class DeleteCustomerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{
		private object[] results;

		internal DeleteCustomerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled,
		                                          object userState) :
		                                          	base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public DeleteCustomerResponse Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((DeleteCustomerResponse) (this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void FindCustomerCompletedEventHandler(object sender, FindCustomerCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class FindCustomerCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{
		private object[] results;

		internal FindCustomerCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
			:
				base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public FindCustomerResponse Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((FindCustomerResponse) (this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Web.Services.WebServiceBindingAttribute(Name="BasicHttpBinding_ICustomerQueue", Namespace="http://tempuri.org/"
			)]
	public partial class CustomerQueueService : System.Web.Services.Protocols.SoapHttpClientProtocol
	{
		private System.Threading.SendOrPostCallback AddToQueueOperationCompleted;

		private System.Threading.SendOrPostCallback GetEntriesOperationCompleted;

		private System.Threading.SendOrPostCallback RemoveFromQueueOperationCompleted;

		private System.Threading.SendOrPostCallback AssignToServicingOperationCompleted;

		/// <remarks/>
		public CustomerQueueService()
		{
			this.Url = "http://localhost:54078/GlobalBankServices/CustomerQueue.asmx";
		}

		/// <remarks/>
		public event AddToQueueCompletedEventHandler AddToQueueCompleted;

		/// <remarks/>
		public event GetEntriesCompletedEventHandler GetEntriesCompleted;

		/// <remarks/>
		public event RemoveFromQueueCompletedEventHandler RemoveFromQueueCompleted;

		/// <remarks/>
		public event AssignToServicingCompletedEventHandler AssignToServicingCompleted;

		/// <remarks/>
		[
			System.Web.Services.Protocols.SoapDocumentMethodAttribute("AddToQueue",
				RequestNamespace="http://GlobalBranchServicesServiceContracts/2006/04/CustomerQueue",
				ResponseNamespace="http://GlobalBranchServicesServiceContracts/2006/04/CustomerQueue",
				Use=System.Web.Services.Description.SoapBindingUse.Literal,
				ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public void AddToQueue(QueueEntry queueEntry)
		{
			this.Invoke("AddToQueue", new object[]
			                          	{
			                          		queueEntry
			                          	});
		}

		/// <remarks/>
		public System.IAsyncResult BeginAddToQueue(QueueEntry queueEntry, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("AddToQueue", new object[]
			                                      	{
			                                      		queueEntry
			                                      	}, callback, asyncState);
		}

		/// <remarks/>
		public void EndAddToQueue(System.IAsyncResult asyncResult)
		{
			this.EndInvoke(asyncResult);
		}

		/// <remarks/>
		public void AddToQueueAsync(QueueEntry queueEntry)
		{
			this.AddToQueueAsync(queueEntry, null);
		}

		/// <remarks/>
		public void AddToQueueAsync(QueueEntry queueEntry, object userState)
		{
			if ((this.AddToQueueOperationCompleted == null))
			{
				this.AddToQueueOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddToQueueOperationCompleted);
			}
			this.InvokeAsync("AddToQueue", new object[]
			                               	{
			                               		queueEntry
			                               	}, this.AddToQueueOperationCompleted, userState);
		}

		private void OnAddToQueueOperationCompleted(object arg)
		{
			if ((this.AddToQueueCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs =
					((System.Web.Services.Protocols.InvokeCompletedEventArgs) (arg));
				this.AddToQueueCompleted(this,
				                         new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled,
				                                                                           invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[
			System.Web.Services.Protocols.SoapDocumentMethodAttribute("GetEntries",
				RequestNamespace="http://GlobalBranchServicesServiceContracts/2006/04/CustomerQueue",
				ResponseNamespace="http://GlobalBranchServicesServiceContracts/2006/04/CustomerQueue",
				Use=System.Web.Services.Description.SoapBindingUse.Literal,
				ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		[return : System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
		[return :
			System.Xml.Serialization.XmlArrayItemAttribute(
				Namespace="http://GlobalBranchServicesDataContracts/2006/04/QueueEntry")]
		public QueueEntry[] GetEntries(GetEntriesRequest request)
		{
			object[] results = this.Invoke("GetEntries", new object[]
			                                             	{
			                                             		request
			                                             	});
			return ((QueueEntry[]) (results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetEntries(GetEntriesRequest request, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetEntries", new object[]
			                                      	{
			                                      		request
			                                      	}, callback, asyncState);
		}

		/// <remarks/>
		public QueueEntry[] EndGetEntries(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((QueueEntry[]) (results[0]));
		}

		/// <remarks/>
		public void GetEntriesAsync(GetEntriesRequest request)
		{
			this.GetEntriesAsync(request, null);
		}

		/// <remarks/>
		public void GetEntriesAsync(GetEntriesRequest request, object userState)
		{
			if ((this.GetEntriesOperationCompleted == null))
			{
				this.GetEntriesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetEntriesOperationCompleted);
			}
			this.InvokeAsync("GetEntries", new object[]
			                               	{
			                               		request
			                               	}, this.GetEntriesOperationCompleted, userState);
		}

		private void OnGetEntriesOperationCompleted(object arg)
		{
			if ((this.GetEntriesCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs =
					((System.Web.Services.Protocols.InvokeCompletedEventArgs) (arg));
				this.GetEntriesCompleted(this,
				                         new GetEntriesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled,
				                                                          invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[
			System.Web.Services.Protocols.SoapDocumentMethodAttribute("RemoveFromQueue",
				RequestNamespace="http://GlobalBranchServicesServiceContracts/2006/04/CustomerQueue",
				ResponseNamespace="http://GlobalBranchServicesServiceContracts/2006/04/CustomerQueue",
				Use=System.Web.Services.Description.SoapBindingUse.Literal,
				ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		[return : System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public QueueEntry RemoveFromQueue(QueueEntry entry)
		{
			object[] results = this.Invoke("RemoveFromQueue", new object[]
			                                                  	{
			                                                  		entry
			                                                  	});
			return ((QueueEntry) (results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginRemoveFromQueue(QueueEntry entry, System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("RemoveFromQueue", new object[]
			                                           	{
			                                           		entry
			                                           	}, callback, asyncState);
		}

		/// <remarks/>
		public QueueEntry EndRemoveFromQueue(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((QueueEntry) (results[0]));
		}

		/// <remarks/>
		public void RemoveFromQueueAsync(QueueEntry entry)
		{
			this.RemoveFromQueueAsync(entry, null);
		}

		/// <remarks/>
		public void RemoveFromQueueAsync(QueueEntry entry, object userState)
		{
			if ((this.RemoveFromQueueOperationCompleted == null))
			{
				this.RemoveFromQueueOperationCompleted =
					new System.Threading.SendOrPostCallback(this.OnRemoveFromQueueOperationCompleted);
			}
			this.InvokeAsync("RemoveFromQueue", new object[]
			                                    	{
			                                    		entry
			                                    	}, this.RemoveFromQueueOperationCompleted, userState);
		}

		private void OnRemoveFromQueueOperationCompleted(object arg)
		{
			if ((this.RemoveFromQueueCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs =
					((System.Web.Services.Protocols.InvokeCompletedEventArgs) (arg));
				this.RemoveFromQueueCompleted(this,
				                              new RemoveFromQueueCompletedEventArgs(invokeArgs.Results, invokeArgs.Error,
				                                                                    invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[
			System.Web.Services.Protocols.SoapDocumentMethodAttribute("AssignToServicing",
				RequestNamespace="http://GlobalBranchServicesServiceContracts/2006/04/CustomerQueue",
				ResponseNamespace="http://GlobalBranchServicesServiceContracts/2006/04/CustomerQueue",
				Use=System.Web.Services.Description.SoapBindingUse.Literal,
				ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		public void AssignToServicing(AssignToServicingRequest request)
		{
			this.Invoke("AssignToServicing", new object[]
			                                 	{
			                                 		request
			                                 	});
		}

		/// <remarks/>
		public System.IAsyncResult BeginAssignToServicing(AssignToServicingRequest request, System.AsyncCallback callback,
		                                                  object asyncState)
		{
			return this.BeginInvoke("AssignToServicing", new object[]
			                                             	{
			                                             		request
			                                             	}, callback, asyncState);
		}

		/// <remarks/>
		public void EndAssignToServicing(System.IAsyncResult asyncResult)
		{
			this.EndInvoke(asyncResult);
		}

		/// <remarks/>
		public void AssignToServicingAsync(AssignToServicingRequest request)
		{
			this.AssignToServicingAsync(request, null);
		}

		/// <remarks/>
		public void AssignToServicingAsync(AssignToServicingRequest request, object userState)
		{
			if ((this.AssignToServicingOperationCompleted == null))
			{
				this.AssignToServicingOperationCompleted =
					new System.Threading.SendOrPostCallback(this.OnAssignToServicingOperationCompleted);
			}
			this.InvokeAsync("AssignToServicing", new object[]
			                                      	{
			                                      		request
			                                      	}, this.AssignToServicingOperationCompleted, userState);
		}

		private void OnAssignToServicingOperationCompleted(object arg)
		{
			if ((this.AssignToServicingCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs =
					((System.Web.Services.Protocols.InvokeCompletedEventArgs) (arg));
				this.AssignToServicingCompleted(this,
				                                new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error,
				                                                                                  invokeArgs.Cancelled,
				                                                                                  invokeArgs.UserState));
			}
		}

		/// <remarks/>
		public new void CancelAsync(object userState)
		{
			base.CancelAsync(userState);
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://GlobalBranchServicesDataContracts/2006/04/QueueEntry")]
	public partial class QueueEntry
	{
		private QueueEntryID queueEntryIDField;

		private string visitorNameField;

		private Customer customerReferenceField;

		private Walkin walkInReferenceField;

		private System.DateTime timeInField;

		private string statusField;

		private string reasonCodeField;

		private string descriptionField;

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public QueueEntryID QueueEntryID
		{
			get { return this.queueEntryIDField; }
			set { this.queueEntryIDField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string VisitorName
		{
			get { return this.visitorNameField; }
			set { this.visitorNameField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public Customer CustomerReference
		{
			get { return this.customerReferenceField; }
			set { this.customerReferenceField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public Walkin WalkinReference
		{
			get { return this.walkInReferenceField; }
			set { this.walkInReferenceField = value; }
		}

		/// <remarks/>
		public System.DateTime TimeIn
		{
			get { return this.timeInField; }
			set { this.timeInField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string Status
		{
			get { return this.statusField; }
			set { this.statusField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string ReasonCode
		{
			get { return this.reasonCodeField; }
			set { this.reasonCodeField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string Description
		{
			get { return this.descriptionField; }
			set { this.descriptionField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://GlobalBranchServicesDataContracts/2006/04/QueueEntryID")]
	public partial class QueueEntryID
	{
		private string idField;

		/// <remarks/>
		public string ID
		{
			get { return this.idField; }
			set { this.idField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Xml.Serialization.XmlTypeAttribute(
			Namespace="http://GlobalBranchServicesDataContracts/2006/04/AssignToServicingRequest")]
	public partial class AssignToServicingRequest
	{
		private string assignToField;

		private QueueEntryID queueEntryIDField;

		/// <remarks/>
		public string AssignTo
		{
			get { return this.assignToField; }
			set { this.assignToField = value; }
		}

		/// <remarks/>
		public QueueEntryID QueueEntryID
		{
			get { return this.queueEntryIDField; }
			set { this.queueEntryIDField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Xml.Serialization.XmlTypeAttribute(
			Namespace="http://GlobalBranchServicesDataContracts/2006/04/GetEntriesRequest")]
	public partial class GetEntriesRequest
	{
		private string assignedToField;

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string AssignedTo
		{
			get { return this.assignedToField; }
			set { this.assignedToField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://GlobalBranchServicesDataContracts/2006/04/Walkin")]
	public partial class Walkin
	{
		private string firstNameField;

		private string lastNameField;

		private string middleInitialField;

		private string sSNumberField;

		private string motherMaidenNameField;

		private Address[] addressesField;

		private PhoneNumber[] phoneNumbersField;

		private EmailAddress[] emailAddressesField;

		private Comment[] commentsField;

		private string customerLevelField;

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string FirstName
		{
			get { return this.firstNameField; }
			set { this.firstNameField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string LastName
		{
			get { return this.lastNameField; }
			set { this.lastNameField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string MiddleInitial
		{
			get { return this.middleInitialField; }
			set { this.middleInitialField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string SSNumber
		{
			get { return this.sSNumberField; }
			set { this.sSNumberField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string MotherMaidenName
		{
			get { return this.motherMaidenNameField; }
			set { this.motherMaidenNameField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
		[System.Xml.Serialization.XmlArrayItemAttribute(Namespace="http://GlobalBranchServicesDataContracts/2006/04/Address")]
		public Address[] Addresses
		{
			get { return this.addressesField; }
			set { this.addressesField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
		[
			System.Xml.Serialization.XmlArrayItemAttribute(
				Namespace="http://GlobalBranchServicesDataContracts/2006/04/PhoneNumber")]
		public PhoneNumber[] PhoneNumbers
		{
			get { return this.phoneNumbersField; }
			set { this.phoneNumbersField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
		[
			System.Xml.Serialization.XmlArrayItemAttribute(
				Namespace="http://GlobalBranchServicesDataContracts/2006/04/EmailAddress")]
		public EmailAddress[] EmailAddresses
		{
			get { return this.emailAddressesField; }
			set { this.emailAddressesField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlArrayAttribute(IsNullable=true)]
		[System.Xml.Serialization.XmlArrayItemAttribute(Namespace="http://GlobalBranchServicesDataContracts/2006/04/Comment")]
		public Comment[] Comments
		{
			get { return this.commentsField; }
			set { this.commentsField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string CustomerLevel
		{
			get { return this.customerLevelField; }
			set { this.customerLevelField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void AddToQueueCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetEntriesCompletedEventHandler(object sender, GetEntriesCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetEntriesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{
		private object[] results;

		internal GetEntriesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState)
			:
				base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public QueueEntry[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((QueueEntry[]) (this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void RemoveFromQueueCompletedEventHandler(object sender, RemoveFromQueueCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class RemoveFromQueueCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{
		private object[] results;

		internal RemoveFromQueueCompletedEventArgs(object[] results, System.Exception exception, bool cancelled,
		                                           object userState) :
		                                           	base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public QueueEntry Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((QueueEntry) (this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void AssignToServicingCompletedEventHandler(
		object sender, System.ComponentModel.AsyncCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Web.Services.WebServiceBindingAttribute(Name="BasicHttpBinding_IAlertsService", Namespace="http://tempuri.org/"
			)]
	public partial class AlertsService : System.Web.Services.Protocols.SoapHttpClientProtocol
	{
		private System.Threading.SendOrPostCallback GetCustomerAlertsOperationCompleted;

		/// <remarks/>
		public AlertsService()
		{
			this.Url = "http://localhost:54078/GlobalBankServices/AlertsService.asmx";
		}

		/// <remarks/>
		public event GetCustomerAlertsCompletedEventHandler GetCustomerAlertsCompleted;

		/// <remarks/>
		[
			System.Web.Services.Protocols.SoapDocumentMethodAttribute("GetCustomerAlerts",
				RequestNamespace="http://GlobalBranchServicesServiceContracts/2006/04/IAlertsService",
				ResponseNamespace="http://GlobalBranchServicesServiceContracts/2006/04/IAlertsService",
				Use=System.Web.Services.Description.SoapBindingUse.Literal,
				ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		[return : System.Xml.Serialization.XmlElementAttribute("GetCustomerAlertsResult", IsNullable=true)]
		public Alert[] GetCustomerAlerts(
			[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)] Customer exampleCustomer)
		{
			object[] results = this.Invoke("GetCustomerAlerts", new object[]
			                                                    	{
			                                                    		exampleCustomer
			                                                    	});
			return ((Alert[]) (results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetCustomerAlerts(Customer exampleCustomer, System.AsyncCallback callback,
		                                                  object asyncState)
		{
			return this.BeginInvoke("GetCustomerAlerts", new object[]
			                                             	{
			                                             		exampleCustomer
			                                             	}, callback, asyncState);
		}

		/// <remarks/>
		public Alert[] EndGetCustomerAlerts(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((Alert[]) (results[0]));
		}

		/// <remarks/>
		public void GetCustomerAlertsAsync(Customer exampleCustomer)
		{
			this.GetCustomerAlertsAsync(exampleCustomer, null);
		}

		/// <remarks/>
		public void GetCustomerAlertsAsync(Customer exampleCustomer, object userState)
		{
			if ((this.GetCustomerAlertsOperationCompleted == null))
			{
				this.GetCustomerAlertsOperationCompleted =
					new System.Threading.SendOrPostCallback(this.OnGetCustomerAlertsOperationCompleted);
			}
			this.InvokeAsync("GetCustomerAlerts", new object[]
			                                      	{
			                                      		exampleCustomer
			                                      	}, this.GetCustomerAlertsOperationCompleted, userState);
		}

		private void OnGetCustomerAlertsOperationCompleted(object arg)
		{
			if ((this.GetCustomerAlertsCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs =
					((System.Web.Services.Protocols.InvokeCompletedEventArgs) (arg));
				this.GetCustomerAlertsCompleted(this,
				                                new GetCustomerAlertsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error,
				                                                                        invokeArgs.Cancelled, invokeArgs.UserState));
			}
		}

		/// <remarks/>
		public new void CancelAsync(object userState)
		{
			base.CancelAsync(userState);
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://GlobalBranchServicesDataContracts/2006/04/Alert")]
	public partial class Alert
	{
		private System.DateTime expirationDateField;

		private System.DateTime startDateField;

		private AlertType alertTypeReferenceField;

		private string customerIdField;

		private int alertIdField;

		/// <remarks/>
		public System.DateTime ExpirationDate
		{
			get { return this.expirationDateField; }
			set { this.expirationDateField = value; }
		}

		/// <remarks/>
		public System.DateTime StartDate
		{
			get { return this.startDateField; }
			set { this.startDateField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public AlertType AlertTypeReference
		{
			get { return this.alertTypeReferenceField; }
			set { this.alertTypeReferenceField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string CustomerId
		{
			get { return this.customerIdField; }
			set { this.customerIdField = value; }
		}

		/// <remarks/>
		public int AlertId
		{
			get { return this.alertIdField; }
			set { this.alertIdField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://GlobalBranchServicesDataContracts/2006/04/AlertType")]
	public partial class AlertType
	{
		private System.DateTime expirationDateField;

		private System.DateTime startDateField;

		private string alertDescriptionField;

		private string typeField;

		private int alertTypeIdField;

		/// <remarks/>
		public System.DateTime ExpirationDate
		{
			get { return this.expirationDateField; }
			set { this.expirationDateField = value; }
		}

		/// <remarks/>
		public System.DateTime StartDate
		{
			get { return this.startDateField; }
			set { this.startDateField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string AlertDescription
		{
			get { return this.alertDescriptionField; }
			set { this.alertDescriptionField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(IsNullable=true)]
		public string Type
		{
			get { return this.typeField; }
			set { this.typeField = value; }
		}

		/// <remarks/>
		public int AlertTypeId
		{
			get { return this.alertTypeIdField; }
			set { this.alertTypeIdField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetCustomerAlertsCompletedEventHandler(object sender, GetCustomerAlertsCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetCustomerAlertsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{
		private object[] results;

		internal GetCustomerAlertsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled,
		                                             object userState) :
		                                             	base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public Alert[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((Alert[]) (this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Web.Services.WebServiceBindingAttribute(Name="BasicHttpBinding_IQuoteService",
			Namespace="http://GlobalBranchServicesServiceContracts/2006/05/IQuoteService/")]
	public partial class QuoteService : System.Web.Services.Protocols.SoapHttpClientProtocol
	{
		private System.Threading.SendOrPostCallback GetRatesOperationCompleted;

		private System.Threading.SendOrPostCallback GetRateOperationCompleted;

		/// <remarks/>
		public QuoteService()
		{
			this.Url = "http://localhost:54078/GlobalBankServices/QuoteService.asmx";
		}

		/// <remarks/>
		public event GetRatesCompletedEventHandler GetRatesCompleted;

		/// <remarks/>
		public event GetRateCompletedEventHandler GetRateCompleted;

		/// <remarks/>
		[
			System.Web.Services.Protocols.SoapDocumentMethodAttribute(
				"http://GlobalBranchServicesServiceContracts/2006/05/IQuoteService/GetRates",
				RequestNamespace="http://GlobalBranchServicesServiceContracts/2006/05/IQuoteService",
				ResponseNamespace="http://GlobalBranchServicesServiceContracts/2006/05/IQuoteService",
				Use=System.Web.Services.Description.SoapBindingUse.Literal,
				ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		[return : System.Xml.Serialization.XmlArrayAttribute("getRatesResponse")]
		[return : System.Xml.Serialization.XmlArrayItemAttribute("rate", IsNullable=false)]
		public RateTableEntryType[] GetRates()
		{
			object[] results = this.Invoke("GetRates", new object[0]);
			return ((RateTableEntryType[]) (results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetRates(System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetRates", new object[0], callback, asyncState);
		}

		/// <remarks/>
		public RateTableEntryType[] EndGetRates(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((RateTableEntryType[]) (results[0]));
		}

		/// <remarks/>
		public void GetRatesAsync()
		{
			this.GetRatesAsync(null);
		}

		/// <remarks/>
		public void GetRatesAsync(object userState)
		{
			if ((this.GetRatesOperationCompleted == null))
			{
				this.GetRatesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetRatesOperationCompleted);
			}
			this.InvokeAsync("GetRates", new object[0], this.GetRatesOperationCompleted, userState);
		}

		private void OnGetRatesOperationCompleted(object arg)
		{
			if ((this.GetRatesCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs =
					((System.Web.Services.Protocols.InvokeCompletedEventArgs) (arg));
				this.GetRatesCompleted(this,
				                       new GetRatesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled,
				                                                      invokeArgs.UserState));
			}
		}

		/// <remarks/>
		[
			System.Web.Services.Protocols.SoapDocumentMethodAttribute(
				"http://GlobalBranchServicesServiceContracts/2006/05/IQuoteService/GetRate",
				RequestNamespace="http://GlobalBranchServicesServiceContracts/2006/05/IQuoteService",
				ResponseNamespace="http://GlobalBranchServicesServiceContracts/2006/05/IQuoteService",
				Use=System.Web.Services.Description.SoapBindingUse.Literal,
				ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		[return : System.Xml.Serialization.XmlElementAttribute("quoteResponse")]
		public QuoteResponseType GetRate(QuoteRequestType quoteRequest)
		{
			object[] results = this.Invoke("GetRate", new object[]
			                                          	{
			                                          		quoteRequest
			                                          	});
			return ((QuoteResponseType) (results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetRate(QuoteRequestType quoteRequest, System.AsyncCallback callback,
		                                        object asyncState)
		{
			return this.BeginInvoke("GetRate", new object[]
			                                   	{
			                                   		quoteRequest
			                                   	}, callback, asyncState);
		}

		/// <remarks/>
		public QuoteResponseType EndGetRate(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((QuoteResponseType) (results[0]));
		}

		/// <remarks/>
		public void GetRateAsync(QuoteRequestType quoteRequest)
		{
			this.GetRateAsync(quoteRequest, null);
		}

		/// <remarks/>
		public void GetRateAsync(QuoteRequestType quoteRequest, object userState)
		{
			if ((this.GetRateOperationCompleted == null))
			{
				this.GetRateOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetRateOperationCompleted);
			}
			this.InvokeAsync("GetRate", new object[]
			                            	{
			                            		quoteRequest
			                            	}, this.GetRateOperationCompleted, userState);
		}

		private void OnGetRateOperationCompleted(object arg)
		{
			if ((this.GetRateCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs =
					((System.Web.Services.Protocols.InvokeCompletedEventArgs) (arg));
				this.GetRateCompleted(this,
				                      new GetRateCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled,
				                                                    invokeArgs.UserState));
			}
		}

		/// <remarks/>
		public new void CancelAsync(object userState)
		{
			base.CancelAsync(userState);
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Xml.Serialization.XmlTypeAttribute(
			Namespace="http://GlobalBranchServicesServiceContracts/2006/05/IQuoteService")]
	public partial class RateTableEntryType
	{
		private decimal rateField;

		private decimal maximumAmountField;

		private decimal minimumAmountField;

		private int startField;

		private int endField;

		/// <remarks/>
		public decimal rate
		{
			get { return this.rateField; }
			set { this.rateField = value; }
		}

		/// <remarks/>
		public decimal maximumAmount
		{
			get { return this.maximumAmountField; }
			set { this.maximumAmountField = value; }
		}

		/// <remarks/>
		public decimal minimumAmount
		{
			get { return this.minimumAmountField; }
			set { this.minimumAmountField = value; }
		}

		/// <remarks/>
		public int start
		{
			get { return this.startField; }
			set { this.startField = value; }
		}

		/// <remarks/>
		public int end
		{
			get { return this.endField; }
			set { this.endField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Xml.Serialization.XmlTypeAttribute(
			Namespace="http://GlobalBranchServicesServiceContracts/2006/05/IQuoteService")]
	public partial class QuoteResponseType
	{
		private decimal rateField;

		private decimal amountField;

		private int durationInMonthsField;

		/// <remarks/>
		public decimal rate
		{
			get { return this.rateField; }
			set { this.rateField = value; }
		}

		/// <remarks/>
		public decimal amount
		{
			get { return this.amountField; }
			set { this.amountField = value; }
		}

		/// <remarks/>
		public int durationInMonths
		{
			get { return this.durationInMonthsField; }
			set { this.durationInMonthsField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Xml.Serialization.XmlTypeAttribute(
			Namespace="http://GlobalBranchServicesServiceContracts/2006/05/IQuoteService")]
	public partial class QuoteRequestType
	{
		private decimal amountField;

		private int durationInMonthsField;

		/// <remarks/>
		public decimal amount
		{
			get { return this.amountField; }
			set { this.amountField = value; }
		}

		/// <remarks/>
		public int durationInMonths
		{
			get { return this.durationInMonthsField; }
			set { this.durationInMonthsField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetRatesCompletedEventHandler(object sender, GetRatesCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetRatesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{
		private object[] results;

		internal GetRatesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public RateTableEntryType[] Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((RateTableEntryType[]) (this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetRateCompletedEventHandler(object sender, GetRateCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetRateCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{
		private object[] results;

		internal GetRateCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) :
			base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public QuoteResponseType Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((QuoteResponseType) (this.results[0]));
			}
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Web.Services.WebServiceBindingAttribute(Name="CustomerProductsServiceSoap",
			Namespace="http://GlobalBranchServices/2006/05/CustomerProducts")]
	public partial class CustomerProductsService : System.Web.Services.Protocols.SoapHttpClientProtocol
	{
		private System.Threading.SendOrPostCallback GetCustomerAccountsOperationCompleted;

		/// <remarks/>
		public CustomerProductsService()
		{
			this.Url = "http://localhost:54078/GlobalBankServices/CustomerProductsService.asmx";
		}

		/// <remarks/>
		public event GetCustomerAccountsCompletedEventHandler GetCustomerAccountsCompleted;

		/// <remarks/>
		[
			System.Web.Services.Protocols.SoapDocumentMethodAttribute(
				"http://GlobalBranchServices/2006/05/CustomerProducts/GetCustomerAccounts",
				RequestNamespace="http://GlobalBranchServices/2006/05/CustomerProducts",
				ResponseNamespace="http://GlobalBranchServices/2006/05/CustomerProducts",
				Use=System.Web.Services.Description.SoapBindingUse.Literal,
				ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
		[return :
			System.Xml.Serialization.XmlElementAttribute("getCustomerAccountsResponse",
				Namespace="http://GlobalBranchServices/2006/05/CustomerProductsMessages.xsd")]
		public getCustomerAccountsResponseType GetCustomerAccounts(
			[
				System.Xml.Serialization.XmlElementAttribute(
				Namespace="http://GlobalBranchServices/2006/05/CustomerProductsMessages.xsd")] getCustomerAccountsRequestType
				getCustomerAccountsRequest)
		{
			object[] results = this.Invoke("GetCustomerAccounts", new object[]
			                                                      	{
			                                                      		getCustomerAccountsRequest
			                                                      	});
			return ((getCustomerAccountsResponseType) (results[0]));
		}

		/// <remarks/>
		public System.IAsyncResult BeginGetCustomerAccounts(getCustomerAccountsRequestType getCustomerAccountsRequest,
		                                                    System.AsyncCallback callback, object asyncState)
		{
			return this.BeginInvoke("GetCustomerAccounts", new object[]
			                                               	{
			                                               		getCustomerAccountsRequest
			                                               	}, callback, asyncState);
		}

		/// <remarks/>
		public getCustomerAccountsResponseType EndGetCustomerAccounts(System.IAsyncResult asyncResult)
		{
			object[] results = this.EndInvoke(asyncResult);
			return ((getCustomerAccountsResponseType) (results[0]));
		}

		/// <remarks/>
		public void GetCustomerAccountsAsync(getCustomerAccountsRequestType getCustomerAccountsRequest)
		{
			this.GetCustomerAccountsAsync(getCustomerAccountsRequest, null);
		}

		/// <remarks/>
		public void GetCustomerAccountsAsync(getCustomerAccountsRequestType getCustomerAccountsRequest, object userState)
		{
			if ((this.GetCustomerAccountsOperationCompleted == null))
			{
				this.GetCustomerAccountsOperationCompleted =
					new System.Threading.SendOrPostCallback(this.OnGetCustomerAccountsOperationCompleted);
			}
			this.InvokeAsync("GetCustomerAccounts", new object[]
			                                        	{
			                                        		getCustomerAccountsRequest
			                                        	}, this.GetCustomerAccountsOperationCompleted, userState);
		}

		private void OnGetCustomerAccountsOperationCompleted(object arg)
		{
			if ((this.GetCustomerAccountsCompleted != null))
			{
				System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs =
					((System.Web.Services.Protocols.InvokeCompletedEventArgs) (arg));
				this.GetCustomerAccountsCompleted(this,
				                                  new GetCustomerAccountsCompletedEventArgs(invokeArgs.Results, invokeArgs.Error,
				                                                                            invokeArgs.Cancelled,
				                                                                            invokeArgs.UserState));
			}
		}

		/// <remarks/>
		public new void CancelAsync(object userState)
		{
			base.CancelAsync(userState);
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Xml.Serialization.XmlTypeAttribute(Namespace="http://GlobalBranchServices/2006/05/CustomerProductsMessages.xsd"
			)]
	public partial class getCustomerAccountsRequestType
	{
		private string customerIdField;

		/// <remarks/>
		public string customerId
		{
			get { return this.customerIdField; }
			set { this.customerIdField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Xml.Serialization.XmlTypeAttribute(Namespace="http://GlobalBranchServices/2006/05/CustomerProductsEntities.xsd"
			)]
	public partial class creditCardTypeType
	{
		private string typeField;

		private decimal maxCreditLimitField;

		private float feesField;

		private float interestRateField;

		private int idField;

		/// <remarks/>
		public string type
		{
			get { return this.typeField; }
			set { this.typeField = value; }
		}

		/// <remarks/>
		public decimal maxCreditLimit
		{
			get { return this.maxCreditLimitField; }
			set { this.maxCreditLimitField = value; }
		}

		/// <remarks/>
		public float fees
		{
			get { return this.feesField; }
			set { this.feesField = value; }
		}

		/// <remarks/>
		public float interestRate
		{
			get { return this.interestRateField; }
			set { this.interestRateField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlAttributeAttribute()]
		public int id
		{
			get { return this.idField; }
			set { this.idField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Xml.Serialization.XmlTypeAttribute(Namespace="http://GlobalBranchServices/2006/05/CustomerProductsEntities.xsd"
			)]
	public partial class creditCardType
	{
		private string customerIdField;

		private creditCardTypeType accountTypeField;

		private decimal cardCreditLimitField;

		private decimal availableBalanceField;

		private decimal paymentDueField;

		private System.DateTime dateOpenedField;

		private System.DateTime lastPaymentDueField;

		private string accountNumberField;

		/// <remarks/>
		public string customerId
		{
			get { return this.customerIdField; }
			set { this.customerIdField = value; }
		}

		/// <remarks/>
		public creditCardTypeType accountType
		{
			get { return this.accountTypeField; }
			set { this.accountTypeField = value; }
		}

		/// <remarks/>
		public decimal cardCreditLimit
		{
			get { return this.cardCreditLimitField; }
			set { this.cardCreditLimitField = value; }
		}

		/// <remarks/>
		public decimal availableBalance
		{
			get { return this.availableBalanceField; }
			set { this.availableBalanceField = value; }
		}

		/// <remarks/>
		public decimal paymentDue
		{
			get { return this.paymentDueField; }
			set { this.paymentDueField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(DataType="date")]
		public System.DateTime dateOpened
		{
			get { return this.dateOpenedField; }
			set { this.dateOpenedField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(DataType="date")]
		public System.DateTime lastPaymentDue
		{
			get { return this.lastPaymentDueField; }
			set { this.lastPaymentDueField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlAttributeAttribute()]
		public string accountNumber
		{
			get { return this.accountNumberField; }
			set { this.accountNumberField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Xml.Serialization.XmlTypeAttribute(Namespace="http://GlobalBranchServices/2006/05/CustomerProductsEntities.xsd"
			)]
	public partial class accountTypeType
	{
		private string typeField;

		private float feesField;

		private int maxMonthlyTransactionField;

		private float interestRateField;

		private int idField;

		/// <remarks/>
		public string type
		{
			get { return this.typeField; }
			set { this.typeField = value; }
		}

		/// <remarks/>
		public float fees
		{
			get { return this.feesField; }
			set { this.feesField = value; }
		}

		/// <remarks/>
		public int maxMonthlyTransaction
		{
			get { return this.maxMonthlyTransactionField; }
			set { this.maxMonthlyTransactionField = value; }
		}

		/// <remarks/>
		public float interestRate
		{
			get { return this.interestRateField; }
			set { this.interestRateField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlAttributeAttribute()]
		public int id
		{
			get { return this.idField; }
			set { this.idField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Xml.Serialization.XmlTypeAttribute(Namespace="http://GlobalBranchServices/2006/05/CustomerProductsEntities.xsd"
			)]
	public partial class accountType
	{
		private string customerIdField;

		private accountTypeType accountType1Field;

		private decimal balanceField;

		private System.DateTime dateOpenedField;

		private System.DateTime lastTransactionAtField;

		private float interestRateField;

		private string accountNumberField;

		/// <remarks/>
		public string customerId
		{
			get { return this.customerIdField; }
			set { this.customerIdField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute("accountType")]
		public accountTypeType accountType1
		{
			get { return this.accountType1Field; }
			set { this.accountType1Field = value; }
		}

		/// <remarks/>
		public decimal balance
		{
			get { return this.balanceField; }
			set { this.balanceField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlElementAttribute(DataType="date")]
		public System.DateTime dateOpened
		{
			get { return this.dateOpenedField; }
			set { this.dateOpenedField = value; }
		}

		/// <remarks/>
		public System.DateTime lastTransactionAt
		{
			get { return this.lastTransactionAtField; }
			set { this.lastTransactionAtField = value; }
		}

		/// <remarks/>
		public float interestRate
		{
			get { return this.interestRateField; }
			set { this.interestRateField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlAttributeAttribute()]
		public string accountNumber
		{
			get { return this.accountNumberField; }
			set { this.accountNumberField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.SerializableAttribute()]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	[
		System.Xml.Serialization.XmlTypeAttribute(Namespace="http://GlobalBranchServices/2006/05/CustomerProductsMessages.xsd"
			)]
	public partial class getCustomerAccountsResponseType
	{
		private string customerIdField;

		private accountType[] accountsField;

		private creditCardType[] creditCardsField;

		/// <remarks/>
		public string customerId
		{
			get { return this.customerIdField; }
			set { this.customerIdField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlArrayItemAttribute("account", IsNullable=false)]
		public accountType[] accounts
		{
			get { return this.accountsField; }
			set { this.accountsField = value; }
		}

		/// <remarks/>
		[System.Xml.Serialization.XmlArrayItemAttribute("creditCard", IsNullable=false)]
		public creditCardType[] creditCards
		{
			get { return this.creditCardsField; }
			set { this.creditCardsField = value; }
		}
	}

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	public delegate void GetCustomerAccountsCompletedEventHandler(object sender, GetCustomerAccountsCompletedEventArgs e);

	/// <remarks/>
	[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.42")]
	[System.Diagnostics.DebuggerStepThroughAttribute()]
	[System.ComponentModel.DesignerCategoryAttribute("code")]
	public partial class GetCustomerAccountsCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs
	{
		private object[] results;

		internal GetCustomerAccountsCompletedEventArgs(object[] results, System.Exception exception, bool cancelled,
		                                               object userState) :
		                                               	base(exception, cancelled, userState)
		{
			this.results = results;
		}

		/// <remarks/>
		public getCustomerAccountsResponseType Result
		{
			get
			{
				this.RaiseExceptionIfNecessary();
				return ((getCustomerAccountsResponseType) (this.results[0]));
			}
		}
	}
}